package com.fh.web.util;

import java.util.ArrayList;
import java.util.List;

import com.fh.web.vo.JsonTreeData;


public class TreeNodeUtil {
  /**
   * @Title: getfatherNode
   * @Description 方法描述: 父节点
   * @param 设定文件： @param treeDataList
   * @param 设定文件： @return    
   * @return 返回类型：List<JsonTreeData>    
   * @throws
   * @date 最后修改时间：2015年6月9日 下午6:39:26
   */
   public final static List<JsonTreeData> getfatherNode(List<JsonTreeData> treeDataList) {
       List<JsonTreeData> newTreeDataList = new ArrayList<JsonTreeData>();
       for (JsonTreeData jsonTreeData : treeDataList) {
           if("0".equals(jsonTreeData.getPid())) {
               //获取父节点下的子节点
               jsonTreeData.setChildren(getChildrenNode(jsonTreeData.getId(),treeDataList));
               jsonTreeData.setState("open");
               newTreeDataList.add(jsonTreeData);
           }
       }
       return newTreeDataList;
   }
    
   /**
   * @Title: getChildrenNode
   * @Description 方法描述: 子节点
   * @param 设定文件： @param pid
   * @param 设定文件： @param treeDataList
   * @param 设定文件： @return    
   * @return 返回类型：List<JsonTreeData>    
   * @throws
   * @date 最后修改时间：2015年6月9日 下午6:39:50
   */
   private final static List<JsonTreeData> getChildrenNode(String pid , List<JsonTreeData> treeDataList) {
       List<JsonTreeData> newTreeDataList = new ArrayList<JsonTreeData>();
       for (JsonTreeData jsonTreeData : treeDataList) {
           if("0".equals(jsonTreeData.getPid()))  continue;
           //这是一个子节点
           if(jsonTreeData.getPid().equals(pid)){
               //递归获取子节点下的子节点
               jsonTreeData.setChildren(getChildrenNode(jsonTreeData.getId() , treeDataList));
               newTreeDataList.add(jsonTreeData);
           }
       }
       return newTreeDataList;
   }
   public final static List<JsonTreeData> detailJsonTreeData(List<JsonTreeData> jsonTreeDataListReturn,List<JsonTreeData> jsonTreeDataList){
	   
	      for (JsonTreeData jsonTreeData : jsonTreeDataList) {
	        jsonTreeDataListReturn.add(jsonTreeData);
	        if(jsonTreeData.getChildren()!=null){
	          detailJsonTreeData(jsonTreeDataListReturn,jsonTreeData.getChildren());
	        }else{
	          return null;
	        }
	      }
	    return jsonTreeDataListReturn;
	  }
}
